<?php
题目一：
<?php
echo -10%3;
?>
答案：-1。
考查：优先级。
因为-的优先级比%求余的优先级低，
也就是-(10%3)。

题目二：
print (int)pow(2,32);
答案：0

题目三：
//file1.php
<?php
$a = '123';
?>
//file2.php
<?php
echo include('file1.php');
?>
答案：1.
考查：返回值。
因include()也是一个函数，有返回值。
在成功时返回1，失败时返回错误信息。
如果被包含的文件有return，则inculde()
成功时返回该文件的返回值。

题目四：
<?php
$count = 5;
function get_count() {
    static $count = 0;
    return $count++;
}
++$count;
get_count();
echo get_count();
?>
答案：1.
考查：static和++。
因static $count，所以只在第一次
调用get_count的时候对$count赋值
为0，第二次再进来这个函数，则不会
第二次赋值。其次就是return $count++
和return ++$count了，前者先返回，
后者先++再返回。

题目五：
<?php
$arr= array(0 =>1,'aa' =>2,3,4);
foreach($arr as $key => $val){
 print($key == 'aa' ? 5 : $val);
}
?>
答案：5534.
考查：类型转换。
因遍历数组第一次的时候，$key和aa的比
较实际就是0和aa的比较，一个是int一个
是string，这个时候会转换类型，将字符
串转换为数字再与数字比较。所以0=='aa'
就是0==0，所以为true，也就是输出5。
虽然PHP是若类型语言，但是人家也有类
型的好吗。


题目六：
<?php
echo count (false);
$a = count ("567")  + count(null)
 + count(false);
echo $a;
?>
答案：2.
考查：count的用法。
因count()的官方解释“If the parameter
 is not an array or not an object 
 with implemented Countable 
 interface, 1 will be returned.”.
 意思是说，如果不是数组或者对象的其他
 类型，返回1.那么这个值应该就是1+0+1
 了（boolen人家也是一个类型，虽然是
 讨厌的false）。NULL的意思是没有值，
 难道在计数函数中还能有1？

题目七：
<?php
$arr = array(1,2,3);
foreach($arr as &$val) {
$val += $val % 2 ? $val++ : $val--;
}
$val = 0;
print(join('',$arr));
?>
答案：330。
考查：++和&。

因foreach结束后的数组应该是array(3,3,7);最后给第三个元素赋值为0，所以就是330了。其中注意的是&，如果有&则是对原变量操作，如果没有，则是先生成一个新变量，然后给这个变量复制，最后操作的是这个新变量。

题目八：
<?php
echo intval((0.1+0.7)*10);
?>
答案：7。
考查：浮点数的概念。
因0.1+0.7=0.8    0.8*10=8  所以转换
 成整数后还是8？错！因为0.1+0.7=0.8是
 浮点数，0.8*10在数学计算中是正整数8，
 可是在计算机中它仍然是浮点数8，什么叫
 浮点数8？每一个看起来像整数的浮点数，
 其实都不是整数，比如这个8，它其实只是
 7.9999循环，无限接近于8，转换成整数会
 舍弃小数部分，就是7喽。

题目九：
<?php
ini_set('display_errors',0);
$arr = array(1=>1,3=>3);
$i = 2;
$a = 'test' . isset($arr[$i]) ? 
$arr[$i] : $i;
请问$a的值是什么？
A、test B、NULL C、2 D、test2
?>
答案：B。
考查：优先级。
因“."的优先级高于三元运算符"?:"。所以程
 序其实报错了。会说$arr的索引2不存在。

题目十：
<?php
$a = 3;
$b = 5;
if($a = 5 || $b = 7) {
    $a++;
    $b++;
}
echo $a . " " . $b;
?>
A、6 8  B、6 6  C、2 6  D、1 6  E、4 6
答案：D。
考查：优先级，基础概念，++。
因“="的优先级低于“||”，所以先逻辑判断再赋值。
 也就是($a = (5 || $b = 7))。所以，最后
 其实给a赋值了，$a等于1.

题目十一：
<?php
$x = 2;
echo $x == 2 ? '我' : $x == 1 ? '你' 
: '它';
?>
输出的结果是（）
A、我
B、你
C、它
D、syntax error
答案：B。
考查：优先级。
 因“=="的优先级高于“?:”。我已经不想说为什么了，整理一下这种东西，我感觉要疯了，除了笔试题外估计也不会遇到了吧。

?>